<script>
	/*
	  需求:手写实现对象的map方法(参考数组map)
	  数组的map特点:
	      1.map一共可以接受两个实参
	          第一个实参数据类型必须是函数,数组中每有一项就会执行一次该函数
	              回调函数接受3个参数
	                  1.item->代表遍历数组中得到的每一项(相当于对象的value)
	                  2.index->代表遍历数组中得到的每一项的下标(相当于对象的key)
	          第二个实参是回调函数的this指向,可以不传
	      2.根据旧数组生成全新的数组,不会影响到旧数组
	      3.新数组中的每一项的结果,由回调函数的返回值决定
	*/

	// 实现方法三：使用JSON.parse(JSON.stringify(obj)，fn）
	var obj = {
		name: "nameval",
		age: "ageval",
		sex: "sexval",
	};

	var newObj = JSON.parse(JSON.stringify(obj), function (key, val) {
		if (key) {
			console.log(val);
			return val + "haha";
		} else return val;
	});

	console.log(newObj);
</script>
